﻿using My.Application.Contracts.Comments.Dtos;
using My.Application.Contracts.Issues.Dtos;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;

namespace My.Application.Contracts.Issues
{
    public interface IIssueService : IApplicationService
    {
        /// <summary>
        /// 创建问题
        /// </summary>
        /// <returns></returns>
        Task CreateIssueAsync(CreateIssueDto input);

        /// <summary>
        /// 添加评论
        /// </summary>
        /// <returns></returns>
        Task CreateCommentAsync(CreateCommentDto input);

        Task AssignAsync(IssueAssignDto input);

        Task CloseAsync(IssueCloseDto input);

        Task ReOpenAsync(IssueCloseDto input);

        Task<List<IssueDto>> GetInActiveIssuesAsync();

        /// <summary>
        /// 获取所有问题
        /// </summary>
        /// <returns></returns>
        Task<object> GetAllAsync();

        Task<List<IssueDto>> GetAssignedIssuesAsync();

        Task<List<IssueDto>> GetLockedIssuesAsync();
    }
}
